// LemCoop
// Copyright (C) 2013  Oliver Naumann <bldrax@gmail.com>

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

#ifndef LEMC_TESTSTATE_H
#define LEMC_TESTSTATE_H

#include "WindowsIncludes.h"
#include <allegro5/allegro.h>
#include <allegro5/allegro_font.h>
#include <allegro5/allegro_ttf.h>
#include <memory>
#include <functional>
#include <iostream>

#include "gamestate.h"
#include "../gui/button.h"
#include "../gui/scrollbar.h"
#include "../gui/dialog.h"
#include "../gui/valuelist.h"

class TestState : public GameState
{
private:
	Dialog* m_test_dialog;
	ALLEGRO_EVENT_QUEUE *m_event_queue;

public:
	/*
	* The contructor saves the pointer to the game engine.
	*/
	TestState(GameEngine* engine);

	void Init();

	void HandleInput(ALLEGRO_EVENT next_event);

	/*
	* Updates the game.
	*/
	void Update(float timing_factor);

	/*
	* Draws the game.
	*/
	void Draw();
};

#endif